Monitoring and Managing User Privacy Levels

ABSTRACT

Various embodiments pertain to techniques for measuring a user&#39;s privacy level as a user interacts with various web services. In various embodiments, entities with which the user interacts are detected and sensitive information shared by the user is logged to determine what a given entity knows about the user. In some embodiments, sensitive information that is shared by a user can be processed using a predictive algorithm to ascertain a user&#39;s level of privacy. When a user&#39;s identity is predicted by the algorithm, a user can be alerted to the loss of anonymity. In various embodiments, user-defined areas of anonymity can be used to measure a user&#39;s definition of privacy. In some embodiments, alerts can also be provided to the user when a new, previously undisclosed, piece of information is shared by the user.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/518,955, entitled Monitoring and Managing User Privacy Levels, filedOct. 20, 2014, which is a continuation of, and claims priority to, U.S.patent application Ser. No. 13/417,363 entitled Monitoring and ManagingUser Privacy Levels filed Mar. 12, 2012, now U.S. Pat. No. 8,893,287,the entire contents of which is hereby incorporated herein by referencein its entirety.

BACKGROUND

The collection of vast amounts of personal data via the Internet hasraised a variety of privacy-related concerns. During interactions withweb service providers, users may disclose information to the serviceprovider in order to facilitate a transaction. Privacy issues can beraised regarding the collection of, use of, sharing of, and level ofcontrol exercised over sensitive data, in addition to user access todisclosed sensitive data. Sensitive data can include a user's real name,address, email address, phone number, birth date, all or part of auser's social security number, demographic information, healthinformation or other data that a user may regard as sensitive orpersonal in nature.

Internet privacy involves the ability to not only control informationrevealed by a user during an online session, but to also control who canaccess the disclosed information. For example, a user may disclose datato a web service provider without knowing that the data will be sharedwith another entity. As another example, a user may provide one piece ofinformation to a first web service, and another piece of information toa second web service, that, when put together, can identify the userwithin a particular degree of certainty. In some situations, if a userwas aware of the information being shared and the impact the disclosurecan have on the user's privacy, the user may decide not to share theinformation or can accept that the user's identity may be known to theweb service.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Various embodiments pertain to techniques for measuring a user's privacylevel as a user interacts with various web services. In variousembodiments, entities with which the user interacts are detected andsensitive information shared by the user is logged to determine what agiven entity knows about the user. In some embodiments, sensitiveinformation that is shared by a user can be processed using a predictivealgorithm to ascertain a user's level of privacy. When a user's identityis predicted by the algorithm, a user can be alerted to the loss ofanonymity.

In various embodiments, user-defined areas of anonymity can be used tomeasure a user's definition of privacy. For example, a user can indicatethat health information, identity information, and financial informationare considered by the user to be private information. When thepredictive algorithm identifies a loss of anonymity associated with theuser's health, identity, or financial information, the system can alertthe user. In some embodiments, alerts can also be provided to the userwhen a new, previously undisclosed, piece of information is shared bythe user.

BRIEF DESCRIPTION OF THE DRAWINGS

While the specification concludes with claims particularly pointing outand distinctly claiming the subject matter, it is believed that theembodiments will be better understood from the following description inconjunction with the accompanying figures, in which:

FIG. 1 illustrates an example operating environment in accordance withone or more embodiments;

FIG. 2 depicts an example process for detecting data disclosed to anentity in accordance with one or more embodiments;

FIG. 3 depicts an example process for determining a user's loss ofprivacy in accordance with one or more embodiments;

FIG. 4 depicts an example process for determining information that canbe ascertained by an entity in accordance with one or more embodiments;

FIG. 5 depicts an example process for assisting a user in determiningwhether to share data in accordance with one or more embodiments; and

FIG. 6 is a block diagram of an example device that can be used toimplement one or more embodiments.

DETAILED DESCRIPTION

Overview

Various embodiments pertain to techniques for measuring a user's privacylevel as a user interacts with various web services. In variousembodiments, entities with which the user interacts are detected andsensitive information shared by the user is logged to determine what agiven entity knows about the user. In some embodiments, sensitiveinformation that is shared by a user can be processed using a predictivealgorithm to ascertain a user's level of privacy. When a user's identityis predicted by the algorithm, a user can be alerted to the loss ofanonymity. In some embodiments, prediction of the user's identityresults from a combination of data that results in a positiveidentification of a user on a first page of search results.

In various embodiments, user-defined areas of anonymity can be used tomeasure a user's definition of privacy. For example, a user can indicatethat health information, identity information, and financial informationare considered by the user to be private information. When thepredictive algorithm identifies a loss of anonymity associated with theuser's health, identity, or financial information, the system can alertthe user. In some embodiments, alerts can also be provided to the userwhen a new, previously undisclosed, piece of information is shared bythe user.

In the discussion that follows, a section entitled “Example OperatingEnvironment” describes an operating environment in accordance with oneor more embodiments. Next, a section entitled “Example Embodiments”describes techniques for measuring a user's privacy level as a userinteracts with various web pages or web services. In some embodiments,sensitive information that is shared by a user can be processed using apredictive algorithm to ascertain a user's level of privacy. In someembodiments, alerts can also be provided to the user when a new,previously undisclosed, piece of information is shared by the user.Finally, a section entitled “Example Device” describes an example devicethat can be used to implement one or more embodiments.

Consider, now, an example operating environment in accordance with oneor more embodiments.

Example Operating Environment

FIG. 1 is an illustration of an example environment 100 in accordancewith one or more embodiments. Environment 100 includes a client device102 communicatively coupled to a website hosting server 104 and aprivacy monitoring server 106 through network 108.

Client device 102 can include one or more processors 110 andcomputer-readable storage media 112. Client device 102 can be embodiedas any suitable computing device such as, by way of example and notlimitation, a desktop computer, a portable computer, a netbook, ahandheld computer such as a personal digital assistant (PDA), a cellphone, and the like.

Computer-readable storage media 112 includes one or more softwareapplications, which can include a software executable module in the formof a web browser 114. Browser 114 can receive content from and sendcontent to other servers, such as website hosting server 104 and privacymonitoring server 106, via network 108, such as the Internet. In variousembodiments, browser 114 includes a plug-in 116.

In one or more embodiments, plug-in 116 is configured to monitor datatraffic between client device 102 and other devices, such as websitehosting server 104. In various embodiments, plug-in 116 can detect auniform resource locator (URL) input into an address bar of browser 114or to which browser 114 is otherwise directed to (e.g., a link leadingto the URL is selected by a user). Browser 114 receives code that causesa web page 118 to be rendered within a window of browser 114. Inaddition to detecting the URL to which the browser has navigated,plug-in 116 is also configured to detect data shared by a user and dataincluded in the background of web page 118.

Data shared by a user can include information, both sensitive andnon-sensitive, entered into one or more fields included on web page 118,information regarding the amount of time the website is displayed bybrowser 114, and the like. Data included in the background of web page118 can include information in the code corresponding to the web page,such as hypertext markup language (HTML) or script. For example, assumethat web page 118 calls another web page or website in the background.This call is coded within the HTML or script for web page 118. Plug-in116 detects the call in the code and is configured to record the webpage that is being called by web page 118.

Web page 118 resides on computer-readable storage media 120 of websitehosting server 104. website hosting server 104 also includes at leastone processor 122 that is configured to execute modules embodied oncomputer-readable storage media 120.

Plug-in 116 can track the information disclosed via client device 102.Disclosed information, including sensitive and non-sensitive data, canbe grouped by entity. In various embodiments, an entity can be a singleservice, such as multiple web pages hosted by website hosting server104, or it can be various entities, such as friends or connections,within a service. For example, if website hosting server 104 hosts asocial network, such as Facebook®, the entire social network hosted bywebsite hosting server 104 can be an entity, or each friend or group offriends connected to a user can be an entity (Facebook® is a registeredtrademark of Facebook, Inc.). An entity can be any group having accessto a given segment of data.

Once data is grouped according to entity by plug-in 116, the plug-in canprovide the information to privacy monitoring module 124. In someembodiments, data is transmitted to privacy monitoring module 124 beforeit is grouped according to entity, and privacy monitoring module 124 cangroup the data accordingly. Privacy monitoring module 124 is configuredto receive data, such as various pieces of sensitive data shared withone or more entities and recorded by plug-in 116, and return informationregarding the privacy level of a user.

Privacy monitoring module 124 resides with a data indexer 126 oncomputer-readable storage media 128 on privacy monitoring server 106.Privacy monitoring server 106 also includes at least one processor 130that is configured to execute various modules embodied oncomputer-readable storage media 128, such as privacy monitoring module124.

In various embodiments, combinations of data shared with a particularentity are entered into a query algorithms and compared to data indexer126. If the information returned by data indexer 126 includes a positiveidentification of the user or returns a high probability score that theuser can be identified, privacy monitoring module 124 can provide anotification to client device 102 that the user has potentially lostanonymity. In some embodiments, the query algorithms and data indexercan be part of a search engine, and a positive identification indicatesthat an entity entering the data combination into a search engine webpage can result in a positive identification of the user on the firstpage of listings or within the first N results, e.g., first 10 results,presented on a search engine results page (SERP).

In various embodiments, privacy monitoring module 124 is furtherconfigured to receive information from plug-in 116 as well as directlyfrom website hosting servers, such as website hosting server 104. Forexample, privacy monitoring module 124 can receive information fromplug-in 116 on a user's primary device, and can receive information fromthe website hosting server 104 when the user has accessed hostedcontent, such as web page 118, from an alternate device, such as amobile device. The privacy monitoring module 124 is configured to sortthe disclosed sensitive data according to entity and can submit one ormore queries to determine a privacy level for the user.

The computer-readable storage media included in each device or servercan include, by way of example and not limitation, all forms of volatileand non-volatile memory and/or storage media that are typicallyassociated with a computing device. Such media can include ROM, RAM,flash memory, hard disk, removable media and the like. One specificexample of a computing device is shown and described below in FIG. 6.

Generally, any of the functions described herein can be implementedusing software, firmware, hardware (e.g., fixed logic circuitry) or acombination of these implementations. The terms “module,”“functionality,” and “logic” as used herein generally representsoftware, firmware, hardware, or a combination thereof. In the case of asoftware implementation, the module, functionality, or logic representprogram code that performs specified tasks when executed on a processor(e.g., CPU or CPUs). The program code can be stored in one or morecomputer-readable memory devices. The features of the user interfacetechniques described below are platform-independent, meaning that thetechniques may be implemented on a variety of commercial computingplatforms having a variety of processors.

Environment 100 is referenced by the following description of variousembodiments in which user privacy is monitored and managed.

Example Embodiments

FIG. 2 illustrates an example process 200 for detecting data disclosedin accordance with one or more embodiments. The process can beimplemented in connection with any suitable hardware, software,firmware, or combination thereof. In at least some embodiments, theprocess can be implemented in software, such as plug-in 116.

Block 202 ascertains a navigation to a URL. This can be performed in anysuitable way. For example, plug-in 116 can ascertain that a user hasentered a URL into an address bar in a web browser user interface, hasselected a link causing the browser to be redirected to the URL, or hasotherwise navigated to the URL. In some embodiments, informationregarding navigation to the URL, such as the name of the web page towhich the URL leads, can be logged and included with other collecteddata.

Next, block 204 detects data that is provided as part of a user'sinteraction. This can be performed in any suitable way. For example,plug-in 116 can extract data transmitted as part of a user query or auser input into a web page, such as answers filled into a user profileweb form. In some embodiments, data can be extracted from HTML, script,or other code of the web page. For example, if the web page to which theuser has navigated calls another web page in the background, dataregarding the called web page can be detected. Other data included inthe code of the web page can be extracted as well, such as, by way ofexample and not limitation, data regarding the IP address from which therequest for the page was transmitted, user login credential information,information regarding a user's previous request for the web page, ortime spent viewing the web page.

Optionally, block 206 groups the data according to entity. This can beperformed in any suitable way. For example, data relating a user'ssearch query and links on a resultant search engine results page (SERP)visited by the user, can be grouped together to represent informationdisclosed to the search engine provider. As another example, dataassociated with a user's visit to the MSN® website, such as a page viewhistory within the MSN® website and keywords extracted from a user'ssearch on Bing® can be grouped together because the user accessed all ofthese pages while logged in with an MSN® account, while data associatedwith a user's visit to Facebook®, such as pages the user “likes” orpersonal information included on the user's profile, can be groupedseparately from the data from MSN® and Bing® (MSN® and Bing® areregistered trademarks of Microsoft Corporation; Facebook® is aregistered trademark of Facebook, Inc.).

In some embodiments, such as when a user has linked multiple accounts,such as linking a Facebook® account and an MSN® account, the data can begrouped in a single entity, as the linked accounts can enableinformation from one account or disclosed to one website to be accessedby the other. In various embodiments, disclosed data can belong to morethan one entity.

In various embodiments, an entity may not include an entire website. Forexample, if a user shares some information in an online profile with onegroup but shares different information with another group on the samewebsite, each of these groups can be a distinct entity for the purposesof sorting and evaluating disclosed data. For example, assume that auser has a “family” group and a “coworkers” group on a social network.The user can share some information, such as pictures from familyevents, personal telephone numbers, and birthday information with usersin the family group, while keeping this information private from usersin the coworkers group. The user may share other information, such as awork email address and a work phone number, with the coworker group andnot the family group. In addition, the user may decide to share otherinformation, such as a city of residence and education information, withboth users in the family and coworkers groups. In this example, datashared only to the family group (e.g., pictures from family events,personal telephone numbers, and birthday information) and data sharedwith both the family and coworkers groups (e.g., city of residence andeducation information) can be grouped together in one entity thatincludes all information known to other users in the family group.Likewise, data shared only to the coworkers group (e.g., work emailaddress and work phone number) and data shared with both the family andcoworkers groups (e.g., city of residence and education information) canbe grouped together into an entity that includes all information knownto other users in the coworkers group.

In embodiments where block 206 is not included, the data can be groupedaccording to entity by another module or device, such as privacymonitoring module 124 hosted on privacy monitoring server 106.

Next, block 208 transmits data to a privacy monitoring service. This canbe performed in any suitable way. For example, plug-in 116 can transmitthe data to privacy monitoring module 124 via network 108. Once one ormore pieces of data are transmitted, the process returns to block 204 todetect disclosure of additional data.

Next, block 210 receives a notice of loss of anonymity. This can beperformed in any suitable way. For example, upon determining that thedata disclosed to a particular entity has resulted in a positiveidentification of the user or a loss of privacy according to the user'sdefined preferences, privacy monitoring module 124 can transmit a noticethat is received by plug-in 116. The plug-in 116 can then cause thenotice to be displayed to the user. For example, the plug-in can cause apop-up within the browser to be displayed.

FIG. 3 illustrates an example process 300 for determining a user's levelof privacy in accordance with one or more embodiments. The process canbe implemented in connection with any suitable hardware, software,firmware, or combination thereof. In at least some embodiments, theprocess can be implemented in software, such as privacy monitoringmodule 124.

Block 302 determines an applicable privacy definition. This can beperformed in any suitable way. For example, a default privacy definitioncan be applied such that a user's home address, telephone number, socialsecurity number, date of birth, or other similar information isconsidered sensitive information. In various embodiments, a user cancustomize the privacy definition applied, such as to include financialinformation, health information, or other types of personal andsensitive information. The privacy definition can include various piecesof information that, when disclosed and/or linked to a user's name, cantrigger a user's loss of privacy and/or anonymity.

Block 304 receives disclosed data. This can be performed in any suitableway. For example, privacy monitoring module 124 can receive datadisclosed via client device 102 and detected by plug-in 116. In someembodiments, privacy monitoring module 124 can receive data from one ormore web services or websites. For example, a user may have installed aplug-in, such as plug-in 116, on a primary device, such as a homecomputer, but may access a web service or web page from other devices,such as a work computer or mobile device. Privacy monitoring module 124can receive information regarding the data disclosed by the user onthese secondary devices from the web service or web page directly, suchas through an association of the data with a user's login credentials,in order to obtain a more complete picture regarding the informationshared by the user. In such embodiments, a user's login credentials forvarious web services or web pages can be provided to the privacymonitoring service by the user when the user creates an account with theprivacy monitoring service, completes a user profile with the privacymonitoring service, or otherwise engages the service to monitor theuser's privacy.

Block 306 optionally groups data according to entity. In someembodiments, such as when the plug-in 116 has grouped the data accordingto entity and the privacy monitoring module 124 does not receiveadditional data from other sources, block 306 can be omitted. In otherembodiments, such as when plug-in 116 has not sorted the disclosed dataand/or the privacy monitoring module 124 receives data from othersources in addition to the plug-in 116, data is sorted and groupedaccording to entity. This can be performed in any suitable way, examplesof which are provided above.

Next, block 308 attempts to determine the identity of the user based ondata for a particular entity. This can be performed in any suitable way.For example, a portion of the data associated with a particular entitycan be entered into an algorithm and compared to a data index, such asan index maintained by data indexer 126, to determine if the identity ofthe user can be determined from the disclosed data. As an example, thedata shared with a search engine provider (e.g., keywords included inuser queries and information from links visited by the user) can becombined in various ways and a probability of identifying the user canbe determined. Assume, for example, a user has searched for “Microsoft,”“Boise, Id.,” a cousin named “John Smith,” and a particular medicine ona search engine. The data included in the entity can also include thelocation of the user (such as through reverse IP lookup). The datapoints can be processed using one or more algorithms, and when comparedto a data index, can determine that the data could lead to a top resultfor a Microsoft employee named Jane Smith who is from Boise.

Block 310 determines if the user has been identified. This can beperformed in any suitable way. If the user has not been identified, suchas when a user's name or personal information is not returned as a topresult in the data index, the process can return to block 304 to receiveadditional disclosed data. If, however, the top result in the data indexmatches information included in the user's profile and/or privacydefinition, block 310 can conclude that the user's identity can bedetermined, and block 312 transmits a notice of loss of privacy. A usercan be concluded to be likely identified if the user's name or otheridentifying information is returned as one of the top results of thedata indexer, is returned on the first page of results of the dataindexer. In some embodiments, identifying information can be somethingother than information unique to a user, such as a name or socialsecurity number. For example, certain demographic information, whencombined together, can result in a likelihood of a match to the user.For example, while “users within the Cincinnati, Ohio area” can be alarge group in which a user may not be readily identified, “female usersaged 24-30 within the Cincinnati, Ohio area with professional degrees”can be a much smaller group from which a user's identity can beascertained. This information can return a notice of loss of privacy,depending on the size of the identified group. In such embodiments, alikelihood that the entity can determine the user can be sufficient todetermine that the user has been identified. The likelihood can be a 75%or greater chance of identifying the user, a 90% chance or greater ofidentifying the user, or another number that can vary depending on theparticular embodiment.

Block 312 transmits a notice of loss of privacy to the user. This can beperformed in any suitable way. For example, privacy monitoring module124 can transmit a message to client device 102 to be displayed,notifying a user that anonymity or privacy of the user to a particularentity has been lost. In some embodiments, privacy monitoring module 124can periodically transmit a list of web pages or entities that have agreater than X %, e.g., 75% chance of identifying the user. The specificlikelihood of the website or entity identifying the user for inclusionon the list or report can vary depending on the particular embodiment.In still other embodiments, notices regarding a loss of privacy caninclude information regarding with what other parties or entities anentity is sharing information, such as via calls included on the webpage.

In various embodiments, merely knowing that a particular entity canidentify a user may not be enough. For example, if a user has inputsensitive information or completed a user profile in order to obtainlog-in credentials, the user can assume that when the login credentialsare used, the entity can identify the user. Sensitive informationprovided in the user profile can include, for example, a first name,last name, date of birth, location of residence (e.g., street address,city, state, and/or zip code), phone number, email address, or age. Theparticular information included in the user profile can depend on theparticular web service. For example, if the web service is a shoppingservice, financial information such as a credit card number and/orbilling address can be included. As another example, if the web serviceis a health-related service, health information such as height, weight,medical history, and/or health insurance information can be included. Invarious embodiments, completion of a user profile with this sensitivedata can result in the web service providing a personalized experience.Where the user knows or can assume that an entity can identify the user,some users may desire how much the entity knows about them.

FIG. 4 illustrates an example process 400 for determining what an entitycan determine about a user in accordance with one or more embodiments.The process can be implemented in connection with any suitable hardware,software, firmware, or combination thereof. In at least someembodiments, the process can be implemented in software, such as privacymonitoring module 124.

Block 402 receives disclosed data. This can be performed in any suitableway. For example, disclosed data can be received from a plug-in on aclient device, such as plug-in 116, or can be received from a websitehosting server, such as website hosting server 104.

Optionally, block 404 groups data according to entity. In someembodiments, such as when the plug-in 116 has grouped the data accordingto entity and the privacy monitoring module 124 does not receiveadditional data from other sources, block 404 can be omitted. In otherembodiments, such as when plug-in 116 has not sorted the disclosed dataand/or the privacy monitoring module 124 receives data from othersources in addition to the plug-in 116, data is sorted and groupedaccording to entity. This can be performed in any suitable way, examplesof which are provided above.

Next, block 406 selects a combination of data points. This can beperformed in any suitable way. For example, when a user has disclosed afirst name, last name, and date of birth to an entity, the three pointscan form a combination. If the user has also disclosed an age to theentity, combinations can be formed from the first name/last name/age,the last name/date of birth/age, the last name/age, and so on.Combinations can include two or more data points. In some embodiments,single data points can be used to determine how sensitive a particularpiece of data can be. For instance, a user's social security number mayreturn much more information than a user's age.

Block 408 compares the combination of data points to a data index. Thiscan be performed in any suitable way. For example, the data points canbe processed using one or more algorithms for finding data in a dataindex, such as a search engine data index, and when compared to the dataindex, can be used to determine that the data could lead to informationregarding a user's educational accomplishments, a user's current job, ora user's page on a social network.

Block 410 outputs sensitive information obtainable from the combination.This can be performed in any suitable way. For example, if informationpreviously indicated by a user to be included in a privacy definitioncan be determined based on a combination of data points provided to anentity, a notification can be transmitted to the user. A notification toa user can indicate that a particular item of sensitive information maybe ascertained by an entity or can include a listing of various piecesof sensitive information that may be ascertained by the entity. In someembodiments, periodic reports (such as weekly or monthly reports) canshow a user how much an entity may have learned about the user over theparticular period or a history of the user's interaction with theentity.

The process can return to block 406 and select a different combinationof data points for processing. The combination can be a new combinationof the data points disclosed to the same entity, or can be a combinationof data points disclosed to a different entity.

As users become aware that their anonymity or privacy is being or hasthe potential to be lost, as well as what certain entity can learn aboutthem based on the information they disclose to an entity, some users mayendeavor to make more intelligent choices when it comes to sharinginformation with some entities.

FIG. 5 illustrates an example process 500 for assisting a user in makingdisclosure choices in accordance with one or more embodiments. Theprocess can be implemented in connection with any suitable hardware,software, firmware, or combination thereof. In at least someembodiments, the process can be implemented in software, such as plug-in116.

Block 502 receives disclosed data. This can be performed in any suitableway. For example, plug-in 116 can detect sensitive data that isdisclosed by a user of client device 102, or can receive sensitive datadisclosed by a user from privacy monitoring server 106 via network 108.Received disclosed data can include, for example, sensitive data or datathat contributes to a loss of a user's anonymity.

Optionally, block 504 groups data according to entity. In someembodiments, such as when the plug-in 116 has received data from privacymonitoring server 106 that has already been grouped, block 504 can beomitted. In other embodiments, such as when plug-in 116 receives datafrom multiple sources, data is sorted and grouped according to entity.This can be performed in any suitable way, examples of which areprovided above.

Block 506 detects data intended for disclosure. This can be performed inany suitable way. For example, plug-in 116 can detect a user input intoa web page, such as answers filled into a user profile web form or otherinformation that will be sent to a server as part of a web page request.In some embodiments, data can be extracted from HTML, script, or othercode of the web page. For example, if the web page to which the user hasnavigated calls another web page in the background, data regarding thecalled web page can be detected. Other data included in the code of theweb page can be extracted as well, such as, by way of example and notlimitation, data regarding the IP address from which the request for thepage was transmitted, user login credential information, informationregarding a user's previous request for the web page, or time spentviewing the web page. In various embodiments, plug-in 116 detects thedata before it is transmitted from the client device.

Block 508 determines if the data intended for disclosure was alreadyshared to the entity. This can be performed in any suitable way. Forexample, plug-in 116 can compare the data detected by block 506 to thedata groups according to the entity with which the detected data will beshared. For example, if the user has entered a query into a BING® searchbox, the plug-in can compare data in the query, such as keywords, todata grouped as already having been disclosed to BINGO.

If block 508 determines that the data detected by block 506 has alreadybeen disclosed to the entity, the process can return from block 508 toblock 506 to detect additional data to be disclosed to the entity. Forexample, if the user has already shared certain information with anentity, sharing the information again will not change what the entityknows about the user.

If, however, the data has not previously been shared with the entity,block 510 provides a notice to the user. This can be performed in anysuitable way. For example, plug-in 116 may cause a pop-up to bedisplayed by browser 114 to confirm that the user wants to share theinformation. In some embodiments, the notice can include an option forthe user to determine what disclosure of the detected data will enablean entity to learn about the user.

If a user selects the option to determine the result of disclosure ofthe detected data, the detected data can be transmitted to the privacymonitoring module 124 for tentative inclusion in the entity. Privacymonitoring module 124 can determine what the entity can determine aboutthe user when this piece of data is included in the data points, such asthrough process 400, and can output sensitive information resulting fromcombinations including the data detected by block 506.

For example, assume a user has already shared her first name, last name,and city of residence with a website. The sharing may have occurred whenthe user completed a user profile, for instance. These data points canbe logged and categorized according to the entity.

Upon a subsequent visit to the website, the user may fill in a survey inwhich the user indicates an applicable age range, a marital status, andan income range. Upon detecting the information input by the user,plug-in 116 can provide a pop-up to notify the user that thisinformation has not yet been disclosed to this particular entity and iscurrently not within the knowledge the entity has about the user basedon the information already disclosed to it.

The user, curious to learn about the consequences of sharing thisinformation, can select an option on the pop-up that says “Tell memore.” The plug-in 116 can transmit the applicable age range, maritalstatus, and income range to the privacy monitoring module 124, whichreturns a list of sensitive information the entity can learn about theuser based upon the data already disclosed and the data the user intendsto disclose. The user can decide to continue and share the newinformation with the entity, or can decide to not complete the surveybecause the entity could determine more information about the user thanthe user would like.

In various embodiments, a privacy mode is provided as part of one ormore executable modules or applications. The privacy mode can modify thebehavior or configuration of the executable module based on the risk ofa loss of anonymity or privacy of the user. For example, a web browsermay automatically change to a “private browsing” mode when a user isinputting sensitive health data. In some embodiments, the privacy modecan be automatically engaged when a user's risk of losing privacyexceeds a threshold risk value. In various embodiments, privacy mode canbe engaged based on an entity with which the executable module isinteracting, an amount of information the entity knows about a user,and/or an amount of new information the interaction with the entitywould render obtainable.

Having considered various embodiments in which user privacy is monitoredand managed, consider now a device that can be utilized to implement oneor more embodiments.

Example Device

FIG. 6 illustrates an example computing device 600 that can be used toimplement the various embodiments described above. Computing device 600can be, for example, client computing device 102 of FIG. 1, or any othersuitable computing device.

Device 600 includes input device 602 that may include Internet Protocol(IP) input devices as well as other input devices, such as a keyboard.Device 600 further includes communication interface 604 that can beimplemented as any one or more of a wireless interface, any type ofnetwork interface, and as any other type of communication interface. Anetwork interface provides a connection between device 600 and acommunication network by which other electronic and computing devicescan communicate data with device 600. A wireless interface can enabledevice 600 to operate as a mobile device for wireless communications.

Device 600 also includes one or more processors 606 (e.g., any ofmicroprocessors, controllers, and the like) which process variouscomputer-executable instructions to control the operation of device 600and to communicate with other electronic devices. Device 600 can beimplemented with computer-readable media 608, such as one or more memorycomponents, examples of which include random access memory (RAM) andnon-volatile memory (e.g., any one or more of a read-only memory (ROM),flash memory, EPROM, EEPROM, etc.). A disk storage device may beimplemented as any type of magnetic or optical storage device, such as ahard disk drive, a recordable and/or rewriteable compact disc (CD), anytype of a digital versatile disc (DVD), and the like.

Computer-readable media 608 provides data storage to store content anddata 610, as well as device executable modules and any other types ofinformation and/or data related to operational aspects of device 600.One such configuration of a computer-readable medium is signal bearingmedium and thus is configured to transmit the instructions (e.g., as acarrier wave) to the hardware of the computing device, such as via thenetwork 108. The computer-readable medium may also be configured as acomputer-readable storage medium and thus is not a signal bearingmedium. Examples of a computer-readable storage medium include a randomaccess memory (RAM), read-only memory (ROM), an optical disc, flashmemory, hard disk memory, and other memory devices that may usemagnetic, optical, and other techniques to store instructions and otherdata. The storage type computer-readable media are explicitly definedherein to exclude propagated data signals.

An operating system 612 can be maintained as a computer executablemodule with the computer-readable media 608 and executed on processor606. Device executable modules can also include browser 614 which caninclude a plug-in 616 as described above and below. Plug-in 616 can be,for example, plug-in 116. In various embodiments, the functionality ofplug-in 116 can be performed by an integral part of the browser, andplug-in 616 is not required.

Device 600 also includes an audio and/or video input/output 618 thatprovides audio and/or video data to an audio rendering and/or displaysystem 620. The audio rendering and/or display system 620 can beimplemented as integrated component(s) of the example device 600, andcan include any components that process, display, and/or otherwiserender audio, video, and image data.

As before, the blocks may be representative of modules that areconfigured to provide represented functionality. Further, any of thefunctions described herein can be implemented using software, firmware(e.g., fixed logic circuitry), manual processing, or a combination ofthese implementations. The terms “module,” “functionality,” and “logic”as used herein generally represent software, firmware, hardware, or acombination thereof. In the case of a software implementation, themodule, functionality, or logic represents program code that performsspecified tasks when executed on a processor (e.g., CPU or CPUs). Theprogram code can be stored in one or more computer-readable storagedevices. The features of the techniques described above areplatform-independent, meaning that the techniques may be implemented ona variety of commercial computing platforms having a variety ofprocessors.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example, and notlimitation. It will be apparent to persons skilled in the relevantart(s) that various changes in form and detail can be made thereinwithout departing from the scope of the present disclosure. Thus,embodiments should not be limited by any of the above-describedexemplary embodiments, but should be defined only in accordance with thefollowing claims and their equivalents.

1. A computing device comprising: at least a memory and a processor toimplement a browser and a plug-in: the browser configured to communicatedata over a network to a website hosting server that hosts a web pageresponsive to receiving a user request to navigate to the web page; theplug-in configured to: detect the data prior to the data beingcommunicated from the browser to the website hosting server; and providea notice that alerts a user of the browser that the data may enableidentification of the user or the browser if the data is communicated tothe website hosting server.
 2. The computing device of claim 1, whereinthe data is to be communicated from the browser to the website hostingserver as part of a web page request.
 3. The computing device of claim1, wherein the data comprises an IP address associated with thecomputing device.
 4. The computing device of claim 1, wherein theplug-in is further configured to prevent the data from beingcommunicated from the browser to the website hosting server.
 5. Thecomputing device of claim 1, wherein the notice requests that the userconfirm the communication of the data to the website hosting server. 6.The computing device of claim 5, wherein the plug-in is furtherconfigured to prevent the data from being communicated to the websitehosting server responsive to receiving a request to not communicate thedata to the website hosting server.
 7. The computing device of claim 5,wherein the plug-in is further configured to communicate the data to thewebsite hosting server responsive to receiving a confirmation tocommunicate the data to the website hosting server.
 8. The computingdevice of claim 1, wherein the notice includes a selectable option todetermine information that the website hosting server could learn aboutthe user or the browser if the data is communicated to the websitehosting server.
 9. A computer-implemented method comprising: detectingdata to be communicated by a browser to a website hosting server as partof a navigation to a web page hosted by the website hosting server;determine whether the data may enable identification of the browser or auser of the browser if the data is communicated from the browser to thewebsite hosting server; and prevent the data from being communicatedfrom the browser to the website hosting server responsive to determiningthat the data may enable identification of the browser or the user ofthe browser.
 10. The computer-implemented method of claim 9, wherein thedata is to be communicated from the browser to the website hostingserver as part of a web page request.
 11. The computer-implementedmethod of claim 9, wherein the data comprises an IP address associatedwith a computing device that is running the browser.
 12. Thecomputer-implemented method of claim 9, further comprising providing anotice that alerts the user that the data may enable identification ofthe browser or the user of the browser if the data is communicated tothe website hosting server.
 13. The computer-implemented method of claim12, wherein the notice requests that the user confirm the communicationof the data to the website hosting server.
 14. The computer-implementedmethod of claim 13, further comprising communicating the data to thewebsite hosting server responsive to receiving a confirmation tocommunicate the data to the website hosting server.
 15. A systemcomprising: at least a memory and a processor to implement a plug-in fora browser, the plug-in configured to perform operations comprising:detecting data to be communicated from the browser to a website hostingserver as part of a navigation to a web page hosted by the websitehosting server; determining, prior to the data being communicated to thewebsite hosting server, that the data has not been previously disclosedto the website hosting server; and providing a notice that alerts a userof the browser that the data has not been previously disclosed to thewebsite hosting server.
 16. The system of claim 15, wherein the data isto be communicated from the browser to the website hosting server aspart of a web page request.
 17. The system of claim 15, wherein the datacomprises an IP address associated with a computing device that isrunning the browser.
 18. The system of claim 15, wherein the datacomprises data that may enable identification of the browser by thewebsite hosting server.
 19. The system of claim 18, wherein the noticealerts the user that that data may enable identification of the browserby the website hosting server.
 20. The system of claim 15, wherein thenotice requests that the user confirm the communication of the data tothe website hosting server.